name: Build Docker images (scheduled)

on:
  workflow_dispatch:
  workflow_call:
  schedule:
    - cron: "0 1 * * *"

concurrency:
  group: docker-image-builds
  cancel-in-progress: false

jobs:
  latest-cpu:
    name: "Latest Accelerate CPU [dev]"
    runs-on: [self-hosted, intel-cpu, 8-cpu, ci]
    steps:
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2
      - name: Login to DockerHub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_PASSWORD }}
      - name: Build and Push CPU
        uses: docker/build-push-action@v4
        with:
          file: docker/accelerate-cpu/Dockerfile          
          push: true
          tags: huggingface/accelerate-cpu

  latest-cuda:
    name: "Latest Accelerate GPU [dev]"
    runs-on: [self-hosted, nvidia-gpu, t4, ci]
    steps:
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2
      - name: Login to DockerHub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_PASSWORD }}

      - name: Build and Push GPU
        uses: docker/build-push-action@v4
        with:
          file: docker/accelerate-gpu/Dockerfile          
          push: true
          tags: huggingface/accelerate-gpu
